package com.ww.springboot.boot.jvm2.part4;

import lombok.Data;

import java.util.Arrays;
import java.util.List;

/**
 * 描述：对象头里面的内容是不断变化的
 *
 * @author 🧑 ‍wanwei
 * @since 2023-01-07 16:38
 */
@Data
public class 对象头 {

    private List<String> 其他部分;

    private com.ww.springboot.boot.jvm2.enums.锁标志位 锁标志位;

    public void change(com.ww.springboot.boot.jvm2.enums.锁标志位 锁标志位){
        switch (锁标志位){
            case 偏向锁:
                this.其他部分 = Arrays.asList("偏向线程ID","对象分代年龄","是否偏向锁");
                break;
            case 轻量级锁:
                this.其他部分 = Arrays.asList("指向栈中锁记录的指针");
                break;
            case 重量级锁:
                this.其他部分 = Arrays.asList("指向互斥量（重量级锁）的指针");
                break;
            case GC标记:
                this.其他部分 = Arrays.asList("空--等待回收即可");
                break;
        }
    }
}
